import OpenAI from "openai";
/*第一行导入OpenAI库用于与OpenAI API交互*/
import { config }from 'dotenv';
//导入dotenv的config函数用于加载环境变量配置。

config({
    path:'.env'
});
//这段代码调用dotenv的config函数，指定从'.env'文件中加载环境变量到当前Node.js应用中，通常用于加载API密钥等敏感配置。

const client = new OpenAI({
    apiKey: process.env.OPENAI_API_KEY,
    //openai adk 是AIGC 事实标准
    //默认请求刀openai服务器
    //可以通过baseURL 自定义服务器地址 LLM服务器代理商或其他模型
    baseURL: 'https://api.agicto.cn/v1',
});
const saleData = `销售数据:
日期,产品,销量,单价,总收入
2023-01-01,iPhone 13,100,6000,600000
2023-01-01,iPhone 14,50,8000,400000
2023-01-02,iPhone 13,80,6000,480000
2023-01-02,iPhone 14,60,8000,480000
2023-01-03,iPhone 13,120,5800,696000
2023-01-03,iPhone 14,80,7800,624000
`

const main = async(reference_date,query)=>{
    //制定一个身份，找对人
    //模板字符串 `` 可以在字符串中嵌入变量
    //优点: 1. 可以在字符串中嵌入变量 2. 可以在字符串中换行 3. 可以在字符串中使用表达式
    //准确的描述任务，数据，清楚说明+格式限定
    //  \n \n\n 起到边界效果
    const prompt =`
    You are an AI date analysis assistant that generates sales reports based on
    the given sales date.
    Here is the sales data:\n${reference_date}\n\n
    Please generate a sales report to answer the following question:\n
    ${query}
    `
    let response = await client.chat.completions.create({
        model:"gpt-4o-mini",
        messages:[
            {
                role:"user",
                content:prompt
            }
        ],
        
        max_tokens:1024,// 长度
        temperature:0.1,//创意性
    })
    console.log(response.choices[0].message.content);
}

// main (saleDate,' 根据上述销售数据,计算iPhone 13和iPhone 14的总销售额各是多少?')
main(
    saleData,
    ' 根据上述销售数据,采取的哪个销售策略非常有效？'
);